Objectives and Contextualisation
The subject provides an introduction to the foundations of software engineering, to object-oriented analysis and design, and to object-oriented programming.
The basic training objectives of the subject are:
Introducind the student in the key concepts of software engineering, seeing the singularities and differences with regard to civil engineering.
Introducing the key concepts regarding the analysis and design of object-oriented software.
Learning an object-oriented programming language. Specifically C ++.
Competences
Electronic Engineering for Telecommunication
Develop personal work habits.
Develop thinking habits.
Learn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.
Work in a team.
Telecommunication Systems Engineering
Develop personal work habits.
Develop thinking habits.
Learn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.
Work in a team.
Learning Outcomes
Apply the basics of software engineering to the development of software applications.
Critically evaluate the work done.
Develop independent learning strategies.
Develop scientific thinking.
Develop the capacity for analysis and synthesis.
Know and use the basics of programming in telecommunication networks, systems and services.
Manage available time and resources.
Manage available time and resources. Work in an organised manner.
Use the basics of the architecture and methodology of design, verification and validation of software.
Work autonomously.
Work cooperatively.
Content
A. INTRODUCTION TO SOFTWARE ENGINEERING
A1. Introduction: Is software engineering required? Basic Concepts
Subject presentation.
Software engineering vs. Civil Engineering.
Software development cycle stages.
Software development processes.
Software Project planning.
A2. Analysis and Design oriented to objects
Effective modularization of a software.
Object-oriented design.
UML: Class Diagram.
B. OBJECT ORIENTED PROGRAMMING IN C++
B1. Classes, Attributes, and Methods
Declaration and definition of the basic elements.
Class vs. Object.
Accessibility: attributes and methods public and private.
Function overloading
B2. Enumerates. Function call mechanism. Dynamic Memory
Enumerates
Function call mechanism.
Inline features
Passing arguments by reference / constant reference.
Allocation /dealocation of memory.
Pointers arithmetic.
B3. Constructors and Destructors. Operators
Types of constructors.
Destructors.
Binary operators.
The assignment operator.
Objects and the this pointer.
The friend concept.
Streams. Operators >> and <<.
B4. Inheritance, Polymorphism and Genericity
Hierarchy. Generalization vs. Specification.
Accessibility to 'protected' attributes and methods.
Static and dynamic binding.
Virtual functions.
Template functions.
Template classes.